home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Network Supervisor's Toolkit
/
Network Supervisor's Toolkit.iso
/
tools
/
lu62
/
port
/
rglu.h
< prev
next >
Wrap
Text File
|
1996-07-10
|
9KB
|
238 lines
/* k 1003 27/08/90 */
/* k 1005 10/09/90 */
/* k 0051 12/09/90 */
/* k 0054 13/09/90 */
/* k 1005 17/09/90 */ /* gluad ->glu */
/* k 0059 21/09/90 */
/* k 0087 03/12/90 */
/* k 0157 15/04/91 */
/* k 0207 06/09/91 *//* delete majelno */
/* k 0224 23/09/91 *//* ebss */
/* k 0230 09/10/91 *//* assemble some data */
/* k 0257 08/11/91 *//* Transient version */
/* k 1073 15/01/92 *//* clear work fields */
#include <ebss.h> /* @0224 */
#include <stdio.h>
#include <fcntl.h>
#include <string.h>
/* @0230 */
/* @0207 */
extern msgop();
struct parmglu *glu(struct parmglu *wglu)
{
struct srdt *ws;
struct rdt *wr;
struct majtb *wm;
struct aname *wa;
struct dlctb *wd;
struct mat *wn;
struct namtb *wntb;
struct nausg *wnsg;
struct cash *wc;
struct glu *wglua; /* 1005 */
struct nau *wnau;
int wcnt,i,j,k;
int cntnau=0;
char *w,*w1; /* work ptr */
ws=avt->srdt; /* @0087 */
wglu->fl1 &= 255-CCASH-CNODE; /* 1005 *//* @0157 */
wglu->gluadar=0;wglu->gluadnod=0; /* 1005 */
wglu->fl2=0; /* 1005 */
for (i=0;i<24;i++)
{ wglu->glulu[i]=' ';} /* reset fields for result @1073 */
wcnt=ws->gno; /* number GLU */
wglua=ws->gluad[0]; /* ptr to glu-table */ /* 1003 */
w=(wglu->inlu); /* @0054 */
for (i=0;i<wcnt;i++)
{ w1=(wglua->namelu); /* @0054 */
#if (RESIDENT == 0)
if (Res_strncmp(w,w1,8) !=0) /* @0257 */
#else
if (strncmp(w,w1,8) !=0)
#endif
wglua=wglua+1;
else
{ w=(wglu->glulu); w1=(wglua->netlu); /* 1005 */
#if (RESIDENT == 0) /* @0257 */
Res_memcpy(w,w1,24); /* 1005 */
#else
memcpy(w,w1,24); /* 1005 */
#endif
wglu->gluadar=wglua->netadr;
wglu->gluadnod=wglua->nodeadr; /* @0054 */
wglu->fl1 |= CNODE; /* 1005 *//* @0157 */
goto GLU4; /* 1005 */
} /* 1005 */
}
if ( wglu->glulu[0] =='\0' || wglu->glulu[0] ==' ') /* 1073 1005 */
{ w=(wglu->glulu); w1=(wglu->inlu);
#if (RESIDENT == 0) /* @0257 */
Res_memcpy(w,w1,8); /* name LU to output list */
#else
memcpy(w,w1,8); /* name LU to output list */
#endif
}
if ( wglu->mode ==GLUFID4)
{ w=(wglu->glunode); w1=(wglu->innode);
#if (RESIDENT == 0) /* @0257 */
Res_memcpy(w,w1,16); /* name NODE,AREA */
#else
memcpy(w,w1,16); /* name NODE,AREA */
#endif
}
if ( wglu->mode ==GLUFID2)
{ w=(wglu->glunode); w1=(wglu->innode); /* 1005 */
#if (RESIDENT == 0) /* @0257 */
Res_memcpy(w,w1,8); /* name NODE */
#else
memcpy(w,w1,8); /* name NODE */
#endif
} /* 1005 */
GLU4: /* 1005 */
if (wglu->gluadar==0 || wglu->gluadnod==0) /* 1005 */
{ wc=avt->cash; /* ptr to cash table */ /* @0087 */
wcnt=avt->cnt; /* count elements */ /* 0051 *//* @0087 */
for (i=0;i<wcnt;i++)
{ w=(wc->lu); w1=(wglu->glulu); /* @0054 */
#if (RESIDENT == 0) /* @0257 */
if (Res_strncmp(w,w1,8) !=0 )
#else
if (strncmp(w,w1,8) !=0 )
#endif
wc=wc+1;
else
{ wglu->fl1 |=CCASH; /* cash found *//* 1005 *//* @0157 */
wglu->gluadar=wc->adra; /* network area */
wglu->fl1 |= CNODE; /* 1005 *//* @0157 */
w=(wglu->glunode); w1=(wc->node); /* @0054 */
#if (RESIDENT == 0) /* @0257 */
Res_memcpy(w,w1,8); /* LU,NODE,AREA name */ /* @0054 */
#else
memcpy(w,w1,8); /* LU,NODE,AREA name */ /* @0054 */
#endif
wglu->gluadnod=wc->adrn; /* @0054 */
goto LOOKRET;
} /* 1005 */
}
}
LOKNODE: /* 1005 */
w=(wglu->glunode); w1=(ws->noden); /* @0059 */
if ((wglu->glunode[0]!='\0') && /* @0059 */ /* 1005 */
(wglu->glunode[0]!=' ') && /* @0059 */
#if (RESIDENT == 0) /* @0257 */
(Res_strncmp(w,w1,8) != 0)) /* @0059 */
#else
(strncmp(w,w1,8) != 0)) /* @0059 */
#endif
goto SARDT; /* 1005 */
wm=avt->majtb; /* */ /* @0087 */
w=wglu->glulu; /* @0054 */
for (i=0;i<2;i++) /* @0207 */
{ if (wm->majname[0]=='\0')
wm=wm+1;
else
{ wr=wm->rdt; /* 1005 */
cntnau=wr->nauno;
wnau=wr->nau;
for (j=0;j<cntnau;j++)
{ w1=wnau->name; /* */ /* @0054 */
#if (RESIDENT == 0) /* @0257 */
if (Res_strncmp(w,w1,8) !=0)
#else
if (strncmp(w,w1,8) !=0)
#endif
wnau=wnau+1;
else
{ wn=ws->mat[0]; /* ptr to mat */ /* 1003 */
/* @0054 */
wglu->gluadar=wn->daf; /* @0054 */
/* @0087 */ wglu->gluadnod=avt->mynode; /* 1005 */
w=wglu->glunode; w1=ws->noden; /* 1005 */
#if (RESIDENT == 0) /* @0257 */
Res_memcpy(w,w1,8); /* node name *//* 1005 */
#else
memcpy(w,w1,8); /* node name *//* 1005 */
#endif
wglu->fl1 |= CNODE; /* @0157 */ /* 1005 */
wcnt=ws->ano; /* count area name */
wa=ws->aname[0]; /* ptr to area name table */ /* 1003 */
for (k=0;k<wcnt;k++)
{ if (wglu->gluadar != wa->addr)
wa=wa+1;
else
{ w=(wglu->gluarea); w1=(wa->aname);
#if (RESIDENT == 0) /* @0257 */
Res_memcpy(w,w1,8); /* name AREA */
#else
memcpy(w,w1,8); /* name AREA */
#endif
}
}
/* @0054 */
goto LOOKRET; /* 1005 */
}
}
} /* @0054 */
wm=wm+1; /* @0054 */
}
goto LOOKRET;
SARDT:
wcnt=ws->ano; /* count area name */
wa=ws->aname[0]; /* ptr to area name table */ /* 1003 */
for (i=0;i<wcnt;i++)
{ if (wglu->gluadar != wa->addr)
wa=wa+1;
else
{ w=(wglu->gluarea); w1=(wa->aname);
#if (RESIDENT == 0) /* @0257 */
Res_memcpy(w,w1,8); /* name AREA */
#else
memcpy(w,w1,8); /* name AREA */
#endif
}
wcnt=ws->matno; /* count MAT */
wn=ws->mat[0]; /* ptr to mat-table */ /* 1003 */
for (k=0;k<wcnt;k++)
{ if (wglu->gluadar != wn->daf)
wn=wn+1;
else
{ wcnt=wn->nodno; /* count NODE */
wntb=wn->ntb[0]; /* ptr to node name table */
for (k=0;k<wcnt;k++)
{ wnsg=wntb->nausg; /* ptr to segad */
if (wglu->gluadar != wnsg->sarea)
wntb=wntb+1;
else
{ w=(wglu->glunode);w1=(wntb->name);
#if (RESIDENT == 0) /* @0257 */
Res_memcpy(w,w1,8); /* NODE name */
#else
memcpy(w,w1,8); /* NODE name */
#endif
wglu->fl1 |= CNODE; /*node name found *//* @0157 */
goto LOOKRET;
}
}
}
wglu->fl1 |= NNODE; /*node name not found *//* @0157 */
goto LOOKRET;
}
wglu->gluadar=0;
goto LOOKRET;
}
LOOKRET:
wn=ws->mat[0]; /* ptr to mat-table */ /* 1003 */
if ( wn->type ==3) /* 1003 */
{ wglu->fl2=3; /* LAN */
return (wglu); /* 1005 */
}
if ( wn->type ==2) /* 1003 */
{ wglu->fl2=2; /* ROUTE */
return (wglu); /* 1005 */
}
else
{ wglu->fl2=1; /* SNA */
return (wglu);
}
}